package org.smart4j.framework;

import org.smart4j.framework.helper.AopHelper;
import org.smart4j.framework.helper.BeanHelper;
import org.smart4j.framework.helper.ClassHelper;
import org.smart4j.framework.helper.ControllerHelper;
import org.smart4j.framework.helper.IocHelper;
import org.smart4j.framework.util.ClassUtil;

/**
 * 加载相应的 Helper 类
 *
 */
public final class HelperLoader {

    public static void init() {
        Class<?>[] classList = {
                // 获取工程下的所有类
            ClassHelper.class,
                // 初始化类的对象
            BeanHelper.class,
                // 为切面目标类创建代理对象，更新BeanHelper中的类和类实例之间的映射关系
                // 实际上就是把原来通过class.newInstance()方法生成的对象替换为代理后的对象
            AopHelper.class,
                // 执行以来注入
            IocHelper.class,
                // 构造请求（方法类型+请求路径）和目标方法之间的映射关系
            ControllerHelper.class
        };
        for (Class<?> cls : classList) {
            ClassUtil.loadClass(cls.getName());
        }
    }
}